package org.sysdance.aplicativo.util;

import org.sysdance.aplicativo.entidade.Usuario;
import org.sysdance.aplicativo.enums.PermissaoUsuarioEnum;

public class SysDanceUtil {
	
	private static final SysDanceUtil instancia = new SysDanceUtil();
    private Usuario usuario;

    private SysDanceUtil() {
    	super();
	}
    
    public static SysDanceUtil getInstancia() {
        return instancia;
    }

    public Usuario getUsuario() {
        return this.usuario;
    }

    public void addUsuarioLogado(final Usuario usuario) {
        this.usuario = usuario;
    }
    
    private Boolean isUsuarioPossuiPermissao(final PermissaoUsuarioEnum permissao){
        if(this.usuario != null){
            return permissao.equals(this.usuario.getPermissaoUsuario());
        }else{
            return Boolean.FALSE;
        }
    }

    public Boolean isAdministrador(){
        return isUsuarioPossuiPermissao(PermissaoUsuarioEnum.ADMINISTRADOR);
    }
    
    public Boolean isProfessor(){
        return isUsuarioPossuiPermissao(PermissaoUsuarioEnum.PROFESSOR);
    }
    
    public Boolean isSecretario(){
        return isUsuarioPossuiPermissao(PermissaoUsuarioEnum.SECRETARIO);
    }
    
    public void imprimirLog(final Exception ex) {
        if (ex != null) {
            ex.printStackTrace(System.err);
        }
    }
}
